import java.awt.EventQueue;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JMenu;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.SwingConstants;
/**
 * Fenêtre principale de l'application Bibliothèque avec le menu 
 * @author IUT,  A.Culet 
 * @version 1.0
 */
public class VueMenuBiblio  extends Vue{
	private JFrame frmGestionDeBibliotheque;

	// ************************************************************************************************************
	// Constructeur
	// ************************************************************************************************************
	public VueMenuBiblio(Controleur controleur) {
		super (controleur);
		this.initialize();
	} // Fin Constructeur
	
	public JFrame getFrame() {
		return frmGestionDeBibliotheque;	
	}
	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frmGestionDeBibliotheque = new JFrame();
		frmGestionDeBibliotheque.setTitle("Gestion de bibliotheque");
		frmGestionDeBibliotheque.setBounds(100, 100, 450, 300);
		frmGestionDeBibliotheque.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
		frmGestionDeBibliotheque.addWindowListener (new WindowAdapter() {
			public void windowClosing (WindowEvent e) {
			getControleur().fermerVue(VueMenuBiblio.this);
			}
		});
		frmGestionDeBibliotheque.getContentPane().setLayout(null);
		
		JMenuBar menuBar = new JMenuBar();
		menuBar.setBounds(20, 12, 290, 25);
		frmGestionDeBibliotheque.getContentPane().add(menuBar);
		
		JMenu mnApplication = new JMenu("Application");
		menuBar.add(mnApplication);

		JMenuItem menuItemMotcle = new JMenuItem("Ajout mot cl�");
		menuItemMotcle.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().saisirMotcle();
				}		
		});
		mnApplication.add(menuItemMotcle);
		
		
		JMenuItem menuItemQuitter = new JMenuItem("Quitter");
		menuItemQuitter.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().fermerVue(VueMenuBiblio.this);
				}		
		});
		mnApplication.add(menuItemQuitter);
		
		/*******************************Menu ouvrage******************************************    */
		JMenu mnOuvrage = new JMenu("Ouvrage");
		menuBar.add(mnOuvrage);
		
		/*Entree menu ouvrage */
		JMenuItem MenuItemOuv = new JMenuItem("Nouvel ouvrage");
		
		MenuItemOuv.addActionListener(new ActionListener()
		 {
			@Override
			public void actionPerformed(ActionEvent event) {
				//  affichage de la fenetre de saisie d'un ouvrage
				getControleur(). saisirOuvrage() ;}
		});
		
		mnOuvrage.add(MenuItemOuv);

		JMenuItem MenuItemExemp = new JMenuItem("Nouvel exemplaire");
		MenuItemExemp.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				//  affichage de la fenetre de saisie d'un exemplaire
				getControleur(). saisirExemplaire() ;}
		});
		mnOuvrage.add(MenuItemExemp);
		

		JMenuItem menuItemConsult = new JMenuItem("Consulter ouvrage");
		menuItemConsult.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// affichage de la fenetre de consultation d'un ouvrage
				getControleur(). consulterOuvrage() ;}
		});
		mnOuvrage.add(menuItemConsult);
		
		
		/*************MENU PERIODIQUE************************************    */
		JMenu mnPeriodique = new JMenu("Periodique");
		menuBar.add(mnPeriodique);
		
		
		/*Entree menu periodique   */
		JMenuItem MenuItemPeriodique = new JMenuItem("Nouveau Periodique");
		
		MenuItemPeriodique.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				//  affichage de la fenetre de saisie d'un exemplaire
				getControleur(). saisirPeriodique() ;}
		});
		mnPeriodique.add(MenuItemPeriodique);
		
	
		JMenuItem MenuItemParution = new JMenuItem("Nouvel Parution");
		MenuItemParution.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				//  affichage de la fenetre de saisie d'un exemplaire
				getControleur(). saisirParution() ;}
		});
		mnPeriodique.add(MenuItemParution);
		

		JMenuItem MenuItemConsulterPer = new JMenuItem("Consulter Periodique");
		MenuItemConsulterPer.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				//  affichage de la fenetre de saisie d'un exemplaire
				getControleur(). consulterPeriodique() ;}
		});
		mnPeriodique.add(MenuItemConsulterPer);
		
		
		
		/*************MENU RECHERCHE************************************    */
		JMenu mnRechercher = new JMenu("Rechercher");
		menuBar.add(mnRechercher);
		
		/*Entree menu Rechercher   */
		JMenuItem MenuItemRechercheParAuteur = new JMenuItem("Recherche par auteur");
		
		MenuItemRechercheParAuteur.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				//  affichage de la fenetre de saisie d'un exemplaire
				getControleur(). rechercheParAuteur() ;}
		});
		mnRechercher.add(MenuItemRechercheParAuteur);
		
		JMenuItem MenuItemRechercheParMotCle = new JMenuItem("Recherche par mot cle");
		MenuItemRechercheParMotCle.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				//  affichage de la fenetre de saisie d'un exemplaire
				getControleur(). rechercheParMotCle() ;}
		});
		mnRechercher.add(MenuItemRechercheParMotCle);
		
		JMenuItem MenuItemRechercheParMotTitre = new JMenuItem("Recherche par mot du titre");
		MenuItemRechercheParMotTitre.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				//  affichage de la fenetre de saisie d'un exemplaire
				getControleur(). rechercheParMotTitre() ;}
		});
		mnRechercher.add(MenuItemRechercheParMotTitre);

		frmGestionDeBibliotheque.setVisible(true);//mettre visible le menu
	
	}
	
	/**
	 * méthode exécutée lorsque la croix de fermeture de la fenêtre a été cliquée
	 */
	public void windowClosing (WindowEvent e) {
		getControleur().fermerVue(VueMenuBiblio.this);
	}

}
